
/**
 * @ Author : Weijian_Wang
 * @ Date : Created in 23:08 2020/10/21 0021
 * @ Description ：
 */
public class Solution {
    /**
     * 你的朋友正在使用键盘输入他的名字 name。偶尔，在键入字符 c 时，按键可能会被长按，而字符可能被输入 1 次或多次。
     *
     * 你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字（其中一些字符可能被长按），那么就返回 True。
     *
     * 输入：name = "alex", typed = "aaleex"
     * 输出：true
     * 解释：'alex' 中的 'a' 和 'e' 被长按。
     * @param name
     * @param typed
     * @return
     */
    public boolean isLongPressedName(String name, String typed) {
        //i指向name中字符，j指向typed中字符
        //当i指向的字符和j指向的字符相同时，i++, j++
        // 然后判断j是否和i相同，如果相同i++ j++, 如果不同 判断j 是否等于i - 1
        //结尾：i等于name的长度，j指向的需都为i - 1的字符或者j等于typed的长度

        int i = 0;
        int j = 0;
        //记录i的前一个值
        char c = ' ';

        while(i < name.length()) {
            if(j == typed.length()) {
                return false;
            }
            if(name.charAt(i) == typed.charAt(j)) {
                c = name.charAt(i);
                i ++;
                j ++;
            } else if(typed.charAt(j) == c) {
                j ++;
            }else {
                return false;
            }
        }

        while(j < typed.length()) {
            if(typed.charAt(j) == c) {
                j ++;
            }else {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args) {
        boolean bool = new Solution().isLongPressedName("pyplrz","ppyypllr");
        System.out.println(bool);
    }
}
